Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
tener 2 llamadas de función php
<?php select1($conn); function select2 ($conn,$id ,$name) { $stmt = $conn->prepare("SELECT def FROM define WHERE id = ?"); mysqli_stmt_bind_param($stmt, 'i', $id); $stmt->execute(); $stmt->bind_result($def); while($stmt->fetch()) { echo $def . “<br>” } $stmt->close(); } function select1 ($conn){ $stmt2 = $conn->prepare("SELECT id , name FROM words"); $stmt2->execute(); $stmt2->bind_result($id, $name); while($stmt2->fetch()) { select2 ($conn,$id ,$name); } } ?>

Tengo 2 funciones php para seleccionar datos de la base de datos. cada registro en palabras tiene múltiples registros en la tabla definida que necesito seleccionar. La primera función está funcionando correctamente. el problema es que la segunda función no funciona.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Como menciona @u_mulder, tiene comillas dobles incorrectas en uso.

Correcto:

$stmt = $conn->prepare("SELECT def FROM define WHERE id = ?");

Incorrecto:

$stmt2 = $conn->prepare("SELECT id , name FROM words”);

El carácter ” no es lo mismo que el carácter " . Esto causará un problema en su consulta. Ver más: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html

Limpiado:

 <?php select1($conn); function select2($conn, $id, $name){ $stmt = $conn->prepare("SELECT def FROM define WHERE id = ?"); $stmt->bind_param('i', $id); $stmt->execute(); $stmt->bind_result($def); while($stmt->fetch()) { echo $def . "<br>" } $stmt->close(); } function select1 ($conn){ $stmt2 = $conn->prepare("SELECT id, name FROM words"); $stmt2->execute(); $stmt2->bind_result($id, $name); while($stmt2->fetch()) { select2($conn, $id, $name); } } ?>

Luego de una inspección adicional, no veo dónde usa $id o $name , por lo que no estoy seguro de por qué está realizando 2 consultas. Aconsejaría una consulta de unión.

 <?php function select1 ($conn){ $stmt = $conn->prepare("SELECT w.id, w.name, d.define FROM words AS w INNER JOIN define AS d ON w.id = d.id"); $stmt->execute(); $stmt->bind_result($id, $name, $def); while($stmt->fetch()) { echo "($id) $name $def<br />"; } } ?>

Actualizar

Si tienes words de tabla:

 +----+--------+ | id | name | +----+--------+ | 1 | 'John' | | 2 | 'Mary' | | 3 | 'Bob' | +----+--------+

Y la tabla define :

 +----+--------------+ | id | def | +----+--------------+ | 1 | 'Some stuff' | | 1 | 'Other stuff'| | 1 | 'More stuff' | | 2 | 'Weird stuff'| | 2 | 'Kind stuff' | | 3 | 'Just stuff' | +----+--------------+

Nos referimos a esto: ¿Cuál es la diferencia entre "INNER JOIN" y "OUTER JOIN"?

La consulta podría ser una unión regular:

 SELECT a.id, a.name, b.def FROM word AS a JOIN define AS b ON a.id = b.id;

El conjunto de resultados debe ser:

 +----+--------+--------------+ | id | name | def | |----|--------|--------------| | 1 | 'John' | 'Some stuff' | | 1 | 'John' | 'Other stuff'| | 1 | 'John' | 'More stuff' | | 2 | 'Mary' | 'Weird stuff'| | 2 | 'Mary' | 'Kind stuff' | | 3 | 'Bob' | 'Just stuff' | +----+--------+--------------+

Espero que esto ayude a explicar tus opciones.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda