Cao ragazzi,
sono un nuovo partecipante al gruppo!
Parteciperò subito con un piccolo problemino che mi sà tanto di cavolata(e mi sta facendo perdere tempo), ma non ne vengo fuori!!
allora, ho inizito a lavorare su MongoDB tramite php:
quindi:
- mi son connesso ad un hosting per MongoDB (MongoLab)
- ho creato le varie connessioni a db, collezione, documenti
- tramite un foreach mi son fatto scorrerre l'array in tabella
- ho creato degli input per poter inserire nuovi documenti.
....e fin qui tutto OK!
il problema sorge con il delete!
passo l'action alla pagina delete.php e mi passo anche la variabile "id" e faccio un cast trasformandola in stringa
ma come risultato ottengo il solito errore:
Fatal error: Uncaught exception 'MongoException' with message 'Invalid object ID' in /Library/WebServer/Documents/deleteMongo.php:14 Stack trace: #0 /Library/WebServer/Documents/deleteMongo.php(14): MongoId->__construct('55e1dfc156c39fa...') #1 {main} thrown in /Library/WebServer/Documents/deleteMongo.php on line 14
comunque...posto il codice così da esser più chiaro:
in mongo1.php
<?php
echo "sono nella pagina mongo_connect_mongoLab.php"."</br>";
$connessione = new MongoClient("mongodb://mio_user:mia_pssw@ds012345
.mongolab.com:12345
/prova");
if($connessione){
echo"connessione avvenuta con successo"."</br>";
}else{
echo "impossibile connettersi al db Mongo"."</br>";
}
$database = $connessione->prova;
if($database){
echo"db creato con successo"."</br>";
}else{
echo "è stato impossibile creare il db"."</br>";
}
$collezione = $database->collezione;
if($collezione){
echo "collezione creata con successo"."</br>";
}else{
echo "è stato impossibile creare la collezione"."</br>";
}
echo "<hr/>";
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 2);
$cursore_find = $connessione->$database->$collezione->find();
echo "<table border='1' align='center'>";
echo "<th>ID</th>";
echo "<th>SQUADRA</th>";
echo "<th>GIOCATORE</th>";
echo "<th>ANNO</th>";
echo "<th>ELIMINA</th>";
foreach ($cursore_find as $key) {
echo "<tr>";
echo "<td>".$key['_id']."</td>";
echo "<td>".$key['squadra']."</td>";
echo "<td>".$key['giocatore']."</td>";
echo "<td>".$key['anno']."</td>";
?>
<td>
<form id="delete" method="POST" action="deleteMongo.php" onsubmit="return confirm('Sicuro di voler eliminare questo evento?');">
<input type="text" name="delete_id" value="<?php echo $key['_id']; ?> "/>
<input type="submit" name="delete" value="Elimina"/>
</form>
</td>
<?php
echo "</tr>";
}
echo "</table>";
?>
<form action="mongo1invio.php" method="post">
squadra <input type="text" id="squadra" name="squadra" />
giocatore <input type="text" id="giocatore" name="giocatore" />
anno <input type="text" id="anno" name="anno" />
<input name="submitForm" id="submitForm" type="submit" value="Invia" />
in deleteMongo.php
<?php
$connessione = new MongoClient("mongodb://mio_user:mia_...@ds012345.mongolab.com:
12345
/prova
");
$database = $connessione->prova;
$collezione=$connessione->$database->collezione;
echo "<hr/>";
error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 2);
$id=$_REQUEST['delete_id'];
$idd=(string)$id;
if(isset($_POST['delete'])) {
$rem_cursore=$connessione->$database->$collezione->remove(array('_id'=> new MongoId($idd)));
}
?>
cosa sbaglio? cosa mi sfugge?
potreste indirizzarmi sulla retta via? Grazie!